Structured information such as a Unified Modeling Language (UML) model is often stored in the Extensible Markup Language (XML), which provides a simple method for storing machine-readable hierarchical data. A UML model is highly structured with overlays for a class hierarchy, a containment hierarchy (parent-child) and a mesh network of references implemented using internal and external (cross-model) references.
An instance of a UML model can grow to encompass a large number of components or subsystems. The possibility that a number of developers and/or modelers will make simultaneous changes increases dramatically as the file grows in size. For example, with a large UML model, one person could be working with embedded diagrams while another could be restructuring the package hierarchy of a system. The potential for conflicting changes is high, because classes can move and diagrams (that likely reference one or more classes) can change. Parallel development is common in large development teams. Each time two contributors work simultaneously on the same file, a merge of the changes is performed when the second person checks the file back into a source control system, such as CLEARCASE sold by IBM of Armonk, N.Y.
The complexity of structured data forces the user performing the merge (i.e., the merger) to examine conflicting changes (deltas) and to select from the alternatives to resolve all changes before proceeding to commit the changes to the file. As shown in FIG. 1, a current visualization technology (e.g. version control systems with merge functions) handles structured data in a cumbersome way using a significant portion of screen space. Typically, the user is presented with a window 26 containing the common file for the merge, a left-hand window 14 and a right-hand window 18 containing merge contributors, and a fourth window containing the merged file 22. Another window 10 includes a description of the differences among the files.
As shown, the merger sees many small windows and must constantly interpret deltas with minimal visible context. The eye must scan constantly from left to right and back, also moving up and down the screen to process the full meaning of each delta. The software's task of marking all related information in the windows is complex. The markings must not obscure the meaning of the data, but must indicate all related items to create a strong relationship between them in the user's mind.